package com.main.common.entity;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface QueryCustomAnnotation {

    //属性名
    String propName() default "";

    //查询方式
    Type type() default Type.LIKE;

    //忽略不需要拼接的字段
    boolean ignore() default false;

    enum Type {
        //等于
        EQUAL
        //大于等于
        ,GREATER_THAN
        //小于等于
        ,LESS_THAN
        //模糊查询
        ,LIKE
        //左模糊查询
        ,LEFT_LIKE
        //右模糊查询
        ,RIGHT_LIKE
        //小于
        ,LESS_THAN_NQ
        //大于
        ,GREATER_THAN_NQ
        //包含
        ,IN
        // 不等于
        ,NOT_EQUAL
        // between
        ,BETWEEN
        // 不为空
        ,NOT_NULL
    }

}
